<!-- 企业微信通讯录组件初始化 -->
<template>
	<div class="" ></div>
</template>

<script>
import Api from '@/api/pages/qywx/index.js';
export default {
	data() {
		return {
			
		};
	},
	mounted() {
		this.init();
	},
	methods: {
		init() {
			(async () => {
				try {
					console.info('WWOpenData demo start');
					if (/MicroMessenger/i.test(navigator.userAgent)) {
						await config(window.configParams);
					}
					let res = await getAgentConfigParams();
					let agentConfigParams = {
						corpid: res.data.appId, // 必填，企业微信的corpid，必须与当前登录的企业一致
						agentid: res.data.agentId, // 必填，企业微信的应用id （e.g. 1000247）
						timestamp: res.data.timestamp, // 必填，生成签名的时间戳
						nonceStr: res.data.nonceStr, // 必填，生成签名的随机串
						signature: res.data.signature, // 必填，签名，见附录-JS-SDK使用权限签名算法
						jsApiList: ['selectExternalContact'] //必填，传入需要使用的接口名称
					};
					await agentConfig(agentConfigParams);
					// 若一切正常，此时可以在 window 上看到 WWOpenData 对象
					console.info('window.WWOpenData', window.WWOpenData);
					if (WWOpenData.checkSession) {
						WWOpenData.checkSession({
							success() {
								console.info('open-data 登录态校验成功');
							},
							fail() {
								console.error('open-data 登录态过期');
							}
						});
					}
				} catch (error) {
					console.error('WWOpenData demo error', error);
				}
				/**
				 * 调用 wx.agentConfig
				 *
				 * @see https://open.work.weixin.qq.com/api/doc/90001/90144/90548
				 */
				async function agentConfig(config) {
					return new Promise((success, fail) => {
						console.info('wx.agentConfig', config);
						wx.agentConfig({
							...config,
							success,
							fail
						});
					}).then(
						res => {
							console.info('wx.agentConfig success', res);
							return res;
						},
						error => {
							console.error('wx.agentConfig fail', error);
							throw error;
						}
					);
				}
				async function getAgentConfigParams() {
					return new Promise((success, fail) => {
						Api.getSignData({}).then(res => {
							if (res.state) {
								success(res);
							} else {
								fail(res);
							}
						});
					}).then(
						res => {
							console.info('wx.agentConfig success', res);
							return res;
						},
						error => {
							console.error('wx.agentConfig fail', error);
							throw error;
						}
					);
				}
			})();
		},
	}
};
</script>
<style lang="scss" scoped>

</style>
